package com.cskaoyan.javase.oop2._1extends._1relation;
/**
 * 父类的子类的关系
 * 在Java中，子类可以看成一个父类，即子类"is-a"父类。或者直接说子类就是一个父类，子类可以当作父类来使用。
 * 怎么理解这句话呢？
 * 1.从代码角度来说，可以用父类引用指向一个子类对象。这样子类对象就当成父类使用了，子类可以看成一个父类。
 * 2.从数据类型的定义上来说：
 *      数据类型：数据 + 操作的集合。对于引用数据类型而言，说白了就是成员变量和成员方法的集合。
 *      子类继承了父类的所有成员，从数据类型来说，完全可以当作父类使用，子类包含了父类的功能。
 *
 * 3.直观角度，说白了：
 *       1. Student就是Person
 *       2. Teacher就是Person
 *       3. Cat也是Animal
 *       4. Dog也是Animal
 * 子类可以看成一个父类，但是反过来是不行的。因为父类的功能往往没有子类强大，父类不能当作子类来使用。
 * 在实际开发中，当你有使用继承的需求时，不仅要考虑成员的复用。更重要的是考虑两个类的关系，是否具有"is-a"关系。
 *
 * @since 17:27
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {
        Son s = new Son();
        System.out.println(s.a);
        s.test();

        Father fs = new Son();
    }
}
class Father{
    int a;
    public void test(){
        System.out.println("test father");
    }
}
class Son extends Father{}
